package com.vanysoft.business.system.license.service;

import com.vanysoft.business.system.license.controller.demo.SystemLicenseInfo;
import com.vanysoft.business.system.license.dao.TSystemLicenseMapper;
import com.vanysoft.business.system.license.entity.TSystemLicense;
import com.vanysoft.common.utils.Des.VanySoftLicenseUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 类名称：LicenseService
 * 类描述：
 * 创建人：X
 * 创建时间：2017年9月18日下午11:31:11
 * 修改人：X
 * 修改时间：2017年9月18日
 * 版本信息：@version 1.0
 * Copyright (c) 2017SharpClaw-版权所有
 * 修改备注：
 */
@Service
@Transactional(readOnly = true)
public class LicenseService {

    @Autowired
    private TSystemLicenseMapper tSystemLicenseMapper;


    public SystemLicenseInfo getSystemLicenseInfo(TSystemLicense inputObj) {
        SystemLicenseInfo obj = new SystemLicenseInfo();
        String[] str = VanySoftLicenseUtil.DecryptedCustom(inputObj.getSystemSN(), inputObj.getLicense());
        //String customInfo = startDate + ":true:" + customer + ":" + productCode + ":" + endDate;
        //0:试用版本;1:正常版本;2:快到期;3:异常
        //当customer为test时为试用版本，只能试用一个月
        if ("test".equalsIgnoreCase(str[2])) {
            obj.setStatus("0");
            obj.setMsg("您当前为试用版本，请尽快联系管理员获取正式注册码！");
        } else {
            obj.setStatus("1");
        }
        return obj;
    }

    public boolean checkLicense(TSystemLicense inputObj) {
        boolean b = VanySoftLicenseUtil.checkOutLicense(inputObj.getSystemSN(), inputObj.getLicense());
        return b;
    }


    public TSystemLicense queryTopLicense() {
        TSystemLicense obj = new TSystemLicense();
        List<TSystemLicense> list = tSystemLicenseMapper.selectLicense();
        if (list.size() > 0) {
            obj = list.get(0);
        }
        return obj;
    }

    @Transactional
    public void updateLicense(TSystemLicense record) {
        tSystemLicenseMapper.updateByPrimaryKey(record);
    }


}
